package com.tjn.map;

import java.util.Hashtable;

/**
 * @author 陶镓妮
 * @version 1.0
 */
public class HashTable_ {
    @SuppressWarnings({"all"})
    public static void main(String[] args) {

        /*
        1.HashTable和HashMap一样，存放的元素是键值对
        2.但是键和值都不能为空，如果为空，则会抛出空指针异常
        3.HashTable线程安全，但是效率低
        4.Hashtable使用的方法基本和HashMap一样
         */

        Hashtable hashtable = new Hashtable();
        hashtable.put("one","周一");
        hashtable.put("two","周二");
        //hashtable.put(null,"周三");//异常
        hashtable.put("four","周四");
        //hashtable.put("five",null);//异常
        hashtable.put("six","周日");
        hashtable.put("six","周六");//替换
        hashtable.put("seven","周日");
        hashtable.put("eight","八点");
        hashtable.put("nine","九点");
        hashtable.put("ten","十点");
        hashtable.put("eleven","十一点");
        hashtable.put("twelve","十二点");

        System.out.println(hashtable);

        /*
        1.通过调试可见，table数组在添加以第一个元素时会扩容到11个空间，加载因子是0.75
           因此到11*0.75=8时会再一次扩容，扩容到了23个空间，通过源码可知23由11*2+1得到
           23*0.75=17，则下一次到17的时候再进行扩容，以此类推
         */
    }
}
